﻿
//懒汉式（Lazy Initialization）—— 线程安全版（C++11 起推荐）​​
//​​特点​​：
//
//第一次调用 getInstance() 时才创建实例。
//利用 ​​局部静态变量​​ 的线程安全特性（C++11 保证静态局部变量的初始化是线程安全的）。
#include<iostream>
namespace Sigleton_pattern {
	class Singleton {
	public:
		// 删除拷贝构造和赋值操作（禁止复制）
		Singleton(const Singleton&) = delete;
		Singleton& operator=(const Singleton&) = delete;

		//// 提供全局访问点
		static Singleton& getInstance() {
			static Singleton instance;// C++11 起线程安全
			return instance;
		}
		// 成员方法示例
		void log(const std::string& message) {
			std::cout << "[LOG] " << message << std::endl;
		}
	private:
		Singleton() = default;// 私有构造函数
		~Singleton() = default;
	};
}

// 使用示例
int main() {
	Sigleton_pattern::Singleton::getInstance().log("Hello, Singleton!");
	Sigleton_pattern::Singleton& s = Sigleton_pattern::Singleton::getInstance(); // 获取同一实例
	s.log("Another message");
	return 0;
}